home *** CD-ROM | disk | FTP | other *** search
/ Compute! Gazette 1987 March / 1987-03.d64 / color craft (.txt) < prev    next >
Commodore BASIC  |  2022-09-20  |  5KB  |  134 lines

  1. 10 iffl=0thenfl=1:load "color craft.obj",8,1
  2. 20 fl=2:poke56,32:clr:dimfp(2,9),bar(10),sc(9),mp(2,9)
  3. 30 poke2040,13:poke2042,253:poke2043,254:poke2044,255
  4. 40 dimco(9):co(1)=1:co(2)=7:co(3)=5:co(4)=6:co(5)=0:co(6)=2:co(7)=14
  5. 50 co(8)=10:co(9)=13
  6. 60 dims1(9),s2(9),s3(2),s4(2)
  7. 70 s1(1)=01:s2(1)=197:s1(2)=129:s2(2)=198:s1(3)=129:s2(3)=196
  8. 80 s1(4)=65:s2(4)=196:s1(5)=193:s2(5)=196:s1(6)=1:s2(6)=196
  9. 90 s1(7)=193:s2(7)=197:s1(8)=129:s2(8)=197:s1(9)=65:s2(9)=197
  10. 100 s3(1)=1:s4(1)=198:s3(2)=65:s4(2)=198:poke53242,63
  11. 110 co(0)=3:s1(0)=s1(1):s2(0)=s2(1)
  12. 120 v=53248:pokev+16,0:nr=1:pokev+29,0:pokev+23,0
  13. 130 poke53276,peek(53276)or(2^0)
  14. 140 bar(1)=1:bar(2)=2:bar(3)=4:bar(4)=14:bar(5)=5:bar(6)=6:bar(7)=7
  15. 150 bar(8)=10:bar(9)=11:bar(10)=13:poke53280,14
  16. 160 fori=1to9:sc(i)=co(i):next:poke2045,14:poke2046,15
  17. 170 poke53245,128:poke53246,3:poke53243,85:poke53244,201:sys50944
  18. 180 poke53245,192:poke53246,3:poke53243,149:poke53244,201:sys50944
  19. 190 pokev+16,96:pokev+10,43:pokev+12,43:pokev+11,59:pokev+13,82:
  20. 200 pokev+45,0:pokev+44,0:nh=0
  21. 210 base=8192:poke53272,peek(53272)or8
  22. 220 poke53265,peek(53265)or32:poke53270,peek(53270)or16:poke53281,3
  23. 230 poke251,0:poke252,32:poke253,64:poke254,33:poke49152,255:sys49153
  24. 240 poke251,64:poke252,33:poke253,64:poke254,63:poke49152,0:sys49153
  25. 250 poke251,0:poke252,4:poke253,232:poke254,7:poke49152,0:sys49153
  26. 260 poke251,0:poke252,216:poke253,231:poke254,219:poke49152,0:sys49153
  27. 270 cr=14:gosub1290
  28. 280 poke251,0:poke252,62:poke253,64:poke254,63:poke49152,255:sys49153
  29. 290 l=1:fori=0to9:forj=0to3:poke56256+i*4+j,bar(l):nextj:l=l+1:nexti
  30. 300 forby=8768to14848step320
  31. 310 ly=int(by-base)/8+1024:pokely,96
  32. 320 fori=0to7:pokeby+i,peek(by+i)or64:next:next
  33. 330 forby=14599to14853step8:pokeby,255
  34. 340 ly=int(by-base)/8+55296:pokely,6:next
  35. 350 forby=14598to14852step8:pokeby,255
  36. 360 ly=int(by-base)/8+55296:pokely,6:next
  37. 370 l=16191:fori=0to39:pokel-(i*8),170:next
  38. 380 fori=1to9:co(i)=sc(i):next
  39. 390 poke53245,64:poke53246,63:poke53243,193:poke53244,198:sys50944
  40. 400 pokev+41,0:pokev+42,0:pokev+43,0
  41. 410 poke53245,128:poke53246,63:poke53243,s3(1):poke53244,s4(1):sys50944
  42. 420 poke53245,192:poke53246,63:poke53243,s3(2):poke53244,s4(2):sys50944
  43. 430 pokev+6,30:pokev+7,220:pokev+8,70:pokev+9,220:pokev+21,120
  44. 440 gosub1040:poke49233,3
  45. 450 forsb=nhto9:pokev+16,96
  46. 460 ny=fp(2,sb):nx=fp(1,sb):ifnx<256then480
  47. 470 pokev+16,97:nx=nx-255
  48. 480 poke53285,co(sb)
  49. 490 poke53245,64:poke53246,3:poke53243,s1(sb):poke53244,s2(sb):sys50944
  50. 500 pokev,nx:pokev+1,ny:poke49189,0:sys49185
  51. 510 nextsb:nh=1:poke49233,0
  52. 520 fl=9
  53. 530 pokev+4,255:pokev+5,105:pokev+16,96
  54. 540 poke51207,61:poke51350,239:poke49189,2:poke251,4:poke252,208
  55. 550 pokev+21,peek(v+21)or4
  56. 560 sys51011
  57. 570 ifpeek(50978)<>0then560
  58. 580 fori=1to300:next
  59. 590 x=peek(v+4)+24:y=peek(v+5)+10:if(peek(v+16)and4)>0thenx=x+255
  60. 600 ify>240then870
  61. 610 ifx>255then680
  62. 620 ify<fp(2,7)-4then530
  63. 630 ifx<70thenpokev+21,0:fl=9:poke53280,14:goto220
  64. 640 ifx<fp(1,6)then1320
  65. 650 forsb=7to9:ifx<fp(1,sb)then730
  66. 660 next
  67. 670 sb=10:goto730
  68. 680 ifx<275then620
  69. 690 ify<100then1110
  70. 700 forsb=2to5:ify<fp(2,sb)then730
  71. 710 next
  72. 720 sb=10:ifx>fp(2,9)+25thensb=6
  73. 730 sb=sb-1:poke53245,64:poke53246,3:poke53243,s1(sb):poke53244,s2(sb):sys50944
  74. 740 ifsb=5then970
  75. 750 iffl=10thengosub900
  76. 760 pokev+1,fp(2,sb):nx=fp(1,sb):ifnx<256then780
  77. 770 pokev+16,peek(v+16)or1:nx=nx-255
  78. 780 pokev,nx:poke53285,co(sb)
  79. 790 pokev+21,(peek(v+21)and251)or1
  80. 800 poke49189,0:poke251,0:poke252,208:poke51207,0:poke51350,196
  81. 810 pokev+1,mp(2,sb):nx=mp(1,sb):pokev+16,peek(v+16)and254:ifnx<256then830
  82. 820 pokev+16,peek(v+16)or1:nx=nx-255
  83. 830 pokev,nx
  84. 840 sys51011
  85. 850 ifpeek(50978)<>0then840
  86. 860 poke49189,0:pokev+21,120:sys49185:goto530
  87. 870 fl=10:forl=2to10:ifx<(l-1)*32+24then890
  88. 880 next:l=11
  89. 890 l=l-1:ncolr=bar(l):poke53280,bar(l):cr=bar(l):gosub1290:goto530
  90. 900 co(sb)=ncolr:fl=9:poke49189,0:pokev+21,120
  91. 910 poke53280,14:cr=14:gosub1290
  92. 920 pokev+1,fp(2,sb):nx=fp(1,sb):ifnx<256then940
  93. 930 pokev+16,peek(v+16)or1:nx=nx-255
  94. 940 pokev,nx:poke53285,co(sb)
  95. 950 pokev+21,(peek(v+21)and251)or1
  96. 960 poke49189,0:sys49185:return
  97. 970 fl=9:poke53280,14:ncolr=0:cr=14:gosub1290:goto 760
  98. 980 nm$="":ii=0
  99. 990 geta$:ifa$=""then990
  100. 1000 ifa$=chr$(13)thenreturn
  101. 1010 ifa$=chr$(20)thenprintchr$(20);:ii=ii-1:nm$=left$(nm$,ii):goto990
  102. 1020 ifa$<chr$(48)ora$>chr$(90)then990
  103. 1030 ii=ii+1:nm$=nm$+a$:printa$;:goto990
  104. 1040 fp(1,0)=294:fp(1,1)=294:fp(1,2)=294:fp(1,3)=294:fp(1,4)=294:fp(1,5)=294
  105. 1050 fp(2,1)=110:fp(2,2)=140:fp(2,3)=165:fp(2,4)=190:fp(2,5)=218
  106. 1060 for i=6to9:fp(1,i)=65+(i-5)*45:fp(2,i)=220:next:fp(1,7)=fp(1,7)-5
  107. 1070 fp(1,8)=fp(1,8)-2
  108. 1080 fori=1to5:mp(1,i)=255:mp(2,i)=fp(2,i):next
  109. 1090 fori=6to9:mp(1,i)=fp(1,i):mp(2,i)=fp(2,i)-24:next
  110. 1100 mp(2,5)=fp(2,5)-24:return
  111. 1110 poke251,0:poke252,4:poke253,39:poke254,4:poke49152,32:sys49153
  112. 1120 cr=14:fl=9:poke53280,cr:gosub1290
  113. 1130 poke51729,0:open15,8,15:sys51419:ify<75then1190
  114. 1140 print"load file name :";:gosub980:sys51669:gosub1290
  115. 1150 open2,8,2,nm$:input#15,a$,b$,c$,c$:sys51419
  116. 1160 ifa$="00"thenprint"loading "nm$:fori=1to1000:next:sys51669:goto1180
  117. 1170 print"  "b$:fori=1to3000:next:goto1230
  118. 1180 gosub1290:sys51937:poke14847,255:goto1250
  119. 1190 print"save file name: ";:gosub980:sys51669:nm$=nm$+",s,w":gosub1290
  120. 1200 open2,8,2,nm$:input#15,a$,b$,c$,c$:sys51419
  121. 1210 ifa$="00"thenprint" saving "nm$:goto1240
  122. 1220 print"  "b$:fori=1to3000:next
  123. 1230 sys51669:gosub1310:gosub1290:p1$="@":goto520
  124. 1240 fori=1to2000:nexti:sys51669:gosub1290:sys51708
  125. 1250 gosub1310:p1$="@"
  126. 1260 ifpeek(51729)=0then520
  127. 1270 sys51419:print" bad disk access. code = "peek(51729)
  128. 1280 fori=1to3000:next:sys51669:gosub1290:goto520
  129. 1290 poke251,0:poke252,216:poke253,40:poke254,216:poke49152,cr:sys49153
  130. 1300 return
  131. 1310 sys65484:close2:close15:return
  132. 1320 poke56,160:clr:sys 64759
  133. 1330 end
  134.